home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / MATH / NRPAS13 / PREDIC.DEM < prev    next >
Text File  |  1991-04-29  |  1KB  |  55 lines

  1. PROGRAM d12r12(input,output);
  2. (* driver for routine PREDIC *)
  3. CONST
  4.    npts=300;
  5.    npoles=10;
  6.    twonp2=22;   (* twonp2=2*npoles+2 *)
  7.    nfut=20;
  8.    pi=3.1415926;
  9. TYPE
  10.    glnarray = ARRAY [1..npts] OF real;
  11.    gldarray = glnarray;
  12.    glmarray = ARRAY [1..npoles] OF real;
  13.    glnparray = glmarray;
  14.    glnfarray = ARRAY [1..nfut] OF real;      
  15.    glcarray = ARRAY [1..twonp2] OF real;
  16.    gl2array = ARRAY [1..2] OF real;
  17. VAR
  18.    i : integer;
  19.    dum : real;
  20.    d,wkm : glmarray;
  21.    data,wk1,wk2 : glnarray;
  22.    future : glnfarray;
  23.  
  24. FUNCTION f(n,npts: integer): real;
  25. CONST
  26.    pi=3.1415926;
  27. BEGIN
  28.    f := exp(-1.0*n/npts)*sin(2.0*pi*n/50.0)
  29.       +exp(-2.0*n/npts)*sin(2.2*pi*n/50.0)
  30. END;
  31.  
  32. (*$I MODFILE.PAS *)
  33. (*$I LAGUER.PAS *)
  34.  
  35. (*$I ZROOTS.PAS *)
  36.  
  37. (*$I MEMCOF.PAS *)
  38.  
  39. (*$I FIXRTS.PAS *)
  40.  
  41. (*$I PREDIC.PAS *)
  42.    
  43. BEGIN
  44.    FOR i := 1 to npts DO BEGIN
  45.       data[i] := f(i,npts)
  46.    END;
  47.    memcof(data,npts,npoles,dum,d,wk1,wk2,wkm);
  48.    fixrts(d,npoles);
  49.    predic(data,npts,d,npoles,future,nfut);
  50.    writeln('I':6,'Actual':11,'PREDIC':12);
  51.    FOR i := 1 to nfut DO BEGIN
  52.       writeln (i:6,f(i+npts,npts):12:6,future[i]:12:6)
  53.    END
  54. END.
  55.